import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import Components from 'unplugin-vue-components/vite'
import { VantResolver } from 'unplugin-vue-components/resolvers'

import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'

export default defineConfig({
  plugins: [
    vue(),
    // 注册自动导入组件插件
    Components({
      // 知识点：配置unplugin-vue-components不需要生成类型声明文件，因为vantui已经自带类型声明了
      dts: false,
      resolvers: [
        VantResolver({
          // 知识点：使用自动导入组件的时候，默认会导入样式，但是我们已经引入了vant的全局样式，这样子会导致样式重复，所以这里
          // 设置引入组件的时候不要再引入样式
          importStyle: false,
        }),
      ],
    }),
    createSvgIconsPlugin({
      // svg文件夹的路径
      iconDirs: [path.resolve(process.cwd(), 'src/icons')],
      // icon的symbolId格式（icon+文件夹+icon文件名）
      // symbolId: 'icon-[dir]-[name]',
    }),
  ],
  // base: '/admin',
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
  server: {
    proxy: {
      // 匹配以 /upload 开头的请求
      '/upload': {
        target: 'http://localhost:3000', // 目标服务器地址(express 本地服务器地址，记得打开本地服务器)
        changeOrigin: true, // 开启跨域（让本地服务器伪装成目标服务器的 origin）
        // rewrite: (path) => path.replace(/^\/api/, ''), // 重写路径，去掉 /api 前缀
      },
    },
  },
})
